home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / C and C++ / Text⁄Files / Dialectic 1.1 Source / Dialectic ƒ / Raw dialects ƒ / fudd.c < prev    next >
Text File  |  1994-02-14  |  2KB  |  91 lines

  1. /**********************************************************************\
  2.  
  3. File:        fudd.c
  4.  
  5. Purpose:    This module handles actually converting text into Fudd talk.
  6.  
  7.  
  8. Dialectic -=- dialect text conversion extraordinare
  9. Copyright ©1994, Mark Pilgrim
  10.  
  11. This program is free software; you can redistribute it and/or modify
  12. it under the terms of the GNU General Public License as published by
  13. the Free Software Foundation; either version 2 of the License, or
  14. (at your option) any later version.
  15.  
  16. This program is distributed in the hope that it will be useful,
  17. but WITHOUT ANY WARRANTY; without even the implied warranty of
  18. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  19. GNU General Public License for more details.
  20.  
  21. You should have received a copy of the GNU General Public License
  22. along with this program in a file named "GNU General Public License".
  23. If not, write to the Free Software Foundation, 675 Mass Ave,
  24. Cambridge, MA 02139, USA.
  25.  
  26. \**********************************************************************/
  27.  
  28. #include "dialectic dispatch.h"
  29. #include "dialectic utilities.h"
  30. #include "program globals.h"
  31.  
  32. void ConvertFudd(void)
  33. {
  34.     char            oneChar;
  35.     
  36.     if (!IsAlpha(ThisChar()))
  37.     {
  38.         gInWord=FALSE;
  39.         StoreChar(ThisChar());
  40.         InputPlus(1);
  41.         return;
  42.     }
  43.     
  44.     oneChar=(ThisChar())|0x20;
  45.     
  46.     if ((oneChar=='r') || (oneChar=='l'))
  47.     {
  48.         gInWord=TRUE;
  49.         StoreChar(ThisChar()+'w'-oneChar);
  50.         InputPlus(1);
  51.         return;
  52.     }
  53.     
  54.     if ((oneChar=='q') && ((NextChar(1)|0x20)=='u'))
  55.     {
  56.         gInWord=TRUE;
  57.         StoreChar(ThisChar());
  58.         StoreChar(NextChar(1)+'w'-'u');
  59.         InputPlus(2);
  60.         return;        
  61.     }
  62.     
  63.     if ((gInWord) && (oneChar=='t') && ((NextChar(1)|0x20)=='h') && (!IsAlpha(NextChar(2))))
  64.     {
  65.         gInWord=TRUE;
  66.         StoreChar(ThisChar()+'f'-'t');
  67.         InputPlus(2);
  68.         return;
  69.     }
  70.     
  71.     if ((oneChar=='t') && ((NextChar(1)|0x20)=='h'))
  72.     {
  73.         gInWord=TRUE;
  74.         StoreChar(ThisChar()+'d'-'t');
  75.         InputPlus(2);
  76.         return;
  77.     }
  78.     
  79.     if ((oneChar=='n') && (NextChar(1)=='.'))
  80.     {
  81.         gInWord=TRUE;
  82.         StoreString("\pn, uh-hah-hah-hah");
  83.         InputPlus(1);
  84.         return;
  85.     }
  86.     
  87.     gInWord=TRUE;
  88.     StoreChar(ThisChar());
  89.     InputPlus(1);
  90. }
  91.